package com.mldong.wxauth.token;

import cn.hutool.cache.CacheUtil;
import cn.hutool.cache.impl.TimedCache;
import cn.hutool.core.date.DateUnit;
import com.mldong.wxauth.vo.TokenVO;
import org.springframework.stereotype.Component;

@Component
public class CacheTokenStore implements ITokenStore {
    final static TimedCache<String,TokenVO> tokenCache = CacheUtil.newTimedCache(DateUnit.HOUR.getMillis() * 2);
    static {
        tokenCache.schedulePrune(DateUnit.MINUTE.getMillis() * 5);
    }
    @Override
    public void set(TokenVO tokenVO) {
        tokenCache.put(tokenVO.getAccessToken(), tokenVO);
    }

    @Override
    public TokenVO get(String token) {
        return tokenCache.get(token);
    }

    @Override
    public void remove(String token) {
        tokenCache.remove(token);
    }
}
